package com.ktjy.web.dao.impl;

import com.ktjy.web.dao.BaseDao;
import com.ktjy.web.dao.GoodsDao;
import com.ktjy.web.dao.GoodsItemDao;
import com.ktjy.web.entity.GoodsItem;
import com.ktjy.web.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * @version v1.0
 * @Author 郴州科泰
 * @Create 2024-07-19 - 16:25
 */
public class GoodsItemDaoImpl extends BaseDao implements GoodsItemDao {

    /**
     * 分页查询商品列表信息
     * @param from 起始位置偏移量
     * @param pageSize 每页显示的数据行数
     * @return 返回查询到的分页列表数据
     */
    @Override
    public List<GoodsItem> getGoodsListPage(Integer from, Integer pageSize) {
        SqlSession sqlSession= MyBatisUtil.createSqlSession();
        List<GoodsItem> list=null;
        try{
            list=sqlSession.getMapper(GoodsItemDao.class).getGoodsListPage(from,pageSize);
        }finally {
            MyBatisUtil.closeSqlSession(sqlSession);
        }

        return list;
    }

    // 得到总的商品列表记录数
    @Override
    public int getCount() {
        SqlSession sqlSession= MyBatisUtil.createSqlSession();
        int count=0;
        try{
            count=sqlSession.getMapper(GoodsItemDao.class).getCount();
        }finally {
            MyBatisUtil.closeSqlSession(sqlSession);
        }

        return count;
    }
    /**
     * 通过二级商品分类id查询此商品分类下的商品列表
     * @param categoryId 二级商品分类id
     */
    @Override
    public List<GoodsItem> getGoodsByCategoryId(Integer categoryId) {
        SqlSession sqlSession= MyBatisUtil.createSqlSession();
        List<GoodsItem> list=null;
        try{
            list=sqlSession.getMapper(GoodsItemDao.class).getGoodsByCategoryId(categoryId);
        }finally {
            MyBatisUtil.closeSqlSession(sqlSession);
        }

        return list;
    }

    /**
     * 通过商品id查询商品的详情信息
     * @param id 商品id
     * @return 返回查询到的商品详情信息
     */
    @Override
    public GoodsItem findById(int id) {
        SqlSession sqlSession= MyBatisUtil.createSqlSession();
        GoodsItem goodsItem=null;
        try{
            goodsItem=sqlSession.getMapper(GoodsItemDao.class).findById(id);
        }finally {
            MyBatisUtil.closeSqlSession(sqlSession);
        }

        return goodsItem;
    }
}
